安全測試與滲透測試的區別主要在:
滲透測試考慮的是以黑客方法,從單點上找到利用途徑,證明你有問題,幫助客戶提高認識,也能解決急迫的一些問題,但無法也不能去針對系統做完備性的安全測試,所以難以解決系統自身實質性的安全問題,所以提供滲透測試的廠商一般都是自己買什么防護設備,以自己防護設備針對的威脅為主要滲透點,找到你有類似的問題,解決方案就以賣對應的防護設備作為手段,針對具體的威脅,通過防護設備采取被動的防護。而安全測試的廠商,則從整體系統架構,安全編碼,安全測試,安全測試覆蓋性,安全度量等多個因素去考慮問題,提出的解決方法則是逐步幫助客戶引入安全開發過程,提供相應的工具支撐,目標是最后讓客戶提升業務系統自身實質性安全問題。
安全測試不局限于WEB應用系統,它可以應用于任何軟件/硬件系統。安全測試首先會對被測試系統做系統分析,分析其架構,軟件體系以及程序部署等等,然后再對被測系統做系統安全分析,在這之后會對系統進行安全建模,明確本系統可能來自的各個潛在威脅,之后需要剖析系統,確認有哪些攻擊界面,根據測試方案進行測試。安全測試只關注漏洞的可利用性分析,但不關注漏洞如何被真實利用的技術,
這當中有幾個因素:
成本因素,對攻擊者來說,利用顯洞的收益是系統所保護的資產,所以可以投入更多的成本來研究漏洞的利用,包括時間,人員,手段。但是對安全測試來說,整個收益是客戶愿意投人的成本,系統所保護的資產遠大于系統開發投入,安全投入又只占系統開發投入的百分之三左右,所以從成本角度考慮,安全測試只關注評估瀾洞被利用的可能性,而不應該具體去研究湘洞如何被利用且展示給客戶。
視角因素:安全測試是幫助客戶降低安全威脅,減少安全漏洞。本身是一種防護技術,盡量發現安全問題并指導客戶修復安全問題是關鍵,沿著的路徑是發現安全問題->分析評估安全問題->提出修補建議->度量安全,而不是以攻擊者視角發現安全問題->利用安全問題->獲得非法收益的路徑。對防護方最有價值的是發現問題,解決問題,而不是發現問題,利用問題。防護方關注都漏洞是否可被利用確定安全漏洞和修復級別就夠了,研究再多的具體攻擊利用技術,對操作系統級別的防護是有意義的,但是對普通應用系統的開發與使用者則是無價值的。
假定因素:客戶面臨的風險不僅來自于外部,也可能來自于攻擊者通過客戶端主機的滲透(如通過對某員工筆記本掛馬再接入內網的方式),還有可能來自于內部。安全要保護全面的安全,我們不能假定攻擊者路徑就一定處于同滲透測試一樣的純外部嚴密防護中,也無法假定攻擊者通過時間積累社工或自身特性(員工)獲取到一些信息。同時攻擊利用技術發展到現在,已經和具體應用的特性結合起來,攻擊者時刻有可能發現以前我們認為低危,不好利用的漏洞的利用方法。
因此安全測試關注點是業務系統在失去所有外部防護之后,自身實現的安全性,關注高覆蓋的安全測試和安全度量,而不是單一的滲透測試。